package com.wunong.smart.collection.domain.state;

import com.wunong.smart.collection.domain.model.CollectionDomain;

/**
 * @author create by zealot.zt
 */
public interface CollectionStateFactory {

    /**
     * 根据领域模型获取状态
     *
     * @param domain
     * @return
     */
    CollectionState getState(CollectionDomain domain);

    /**
     * 根据领域模型获取状态
     *
     * @param status
     * @return
     */
    CollectionState getState(Integer status);

    /**
     * 注册状态实例
     *
     * @param state
     */
    void register(CollectionState state);

}
